// @algorithm @lc id=198 lang=cpp 
// @title house-robber


// @test([1,2,3,1])=4
// @test([2,7,9,3,1])=12
// @test([1])=1
// @test([2,1,1,2])=4
class Solution {
public:
    int rob(vector<int>& nums) {
        vector<int> b{0, nums[0]}, c{0, nums[0]};
        for(int i=1; i<nums.size(); i++){
            tie(c[0], c[1]) = make_tuple(max(b[1],b[0]), nums[i]+b[0]);
            b = c;
        }
        return max(c[0], c[1]);
    }
};